There are many circumstances in which it is desirable to age entries stored in a memory. Aging memory entries permits a memory to be kept relatively small, since older entries that have not been accessed for some time can be removed to make room for new entries. This aging is useful in a cache memory, for example, in which speed of access and searching for entries is a normal requirement. Such caches are used in many types of systems, such as computers, network switches for packet switched networks, etc. To keep a cache memory small and therefore fast and readily searchable, only the entries that are most likely to be accessed should be kept in the cache memory at any one time, and these are typically the most recent entries into the cache memory.
A conventional arrangement for aging memory entries employs time stamping of the entries in the memory. Time stamping involves encoding and associating a "time stamp" with an entry. This time stamp is decoded by the memory manager in order to determine the relative ages of the entries in the memory, and allow the memory manager to remove old entries in favor of newer entries.
The time stamping procedure and arrangements in the prior art require additional overhead and structure, and may slow down a memory due to the time it takes to perform the time stamping procedures. A similar problem in memories is that of determining the validity of entries. Again, in order to keep cache memories as small as practical, it is normally important to remove invalid entries from the cache memory in order to provide room for new, valid entries. Typically, an entry will be provided with a valid bit, which indicates the validity of that entry. A memory manager will examine these valid bits in the cache when accessing an entry in the memory to determine if the accessed entry in the memory is valid. This separately provided valid bit adds to the size of the cache and the complexity of the memory arrangement.